package com.mccken.rapid.core.context;

import org.asynchttpclient.Request;
import org.asynchttpclient.cookie.Cookie;

/**
 * 请求可修改的参数操作接口
 * 
 * @program: rapid_gateway
 * @description:
 * @author: mccken
 * @create: 2022-01-28 16:25
 **/
public interface RapidRequestMutable {
	
	// 设置请求host
	void setModifyHost(String host);
	
	String getModifyHost();
	
	// 设置请求路径
	void setModifyPath(String path);
	
	String getModifyPath();
	
	// 添加请求头信息
	void addHeader(CharSequence name, String value);
	
	// 设置请求头信息
	void setHeader(CharSequence name, String value);
	
	// 添加请求的查询信息 
	void addQueryParam(String name, String value);
	
	// 添加或者替换cookie
	void addOrReplaceCookie(Cookie cookie);
	
	// 添加form表单参数
	void addFormParam(String name, String value);
	
	// 设置请求超时时间
	void setRequestTimeout(int requestTimeout);
	
	// 构建转发请求的请求对象
	Request build();
	
	// 获得最终的路由路径
	String getFinalUrl();
}
